#ifndef STEWENIUS_TEST_DATA
#define STEWENIUS_TEST_DATA

// Variable definitions for Octave-generated test data
// and reference results

// 3D point cloud (20 x 20 x 5; centre at 0,0,10)
extern const unsigned int DATA_POINT_COUNT;
extern const double DATA_POINTS[][3];

// world -> camera matrix for camera 1 (note: column major order)
extern const double DATA_P1[16];

// world -> camera matrix for camera 2 (note: column major order)
extern const double DATA_P2[16];

// measurements for camera 1
extern const double DATA_X1[][3];

// measurements for camera 2
extern const double DATA_X2[][3];

// camera 2 -> camera 1 matrix (note: column major order)
extern const double DATA_P[16];

// constructed E matrix (note: column major order)
extern const double DATA_TRUE_E[9];

// Sample indexes (0-based indexes)
// (to verify: first sample 3D pos is 6.109169, -5.885546, 8.363210)
extern const unsigned int DATA_SAMPLE_SIZE;
extern const unsigned int DATA_SAMPLE[];

// Q matrix (5 x 9; col-major order)
extern const double DATA_Q[];

// EE matrix (9 x 4) (note: row-major order)
extern const double DATA_EE[9][4];

// M matrix (10 x 20) (note: column-major order)
extern const double DATA_M[20][10];

// B matrix (10 x 10) (note: column-major order)
extern const double DATA_B[10][10];

// At matrix (10 x 10) (note: column-major order)
extern const double DATA_At[10][10];

#endif
